home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / jikes / src / unicode.h < prev    next >
C/C++ Source or Header  |  1999-05-14  |  2KB  |  88 lines

  1. // $Id: unicode.h,v 1.3 1999/01/25 20:00:32 shields Exp $
  2. //
  3. // This software is subject to the terms of the IBM Jikes Compiler
  4. // License Agreement available at the following URL:
  5. // http://www.ibm.com/research/jikes.
  6. // Copyright (C) 1996, 1998, International Business Machines Corporation
  7. // and others.  All Rights Reserved.
  8. // You must accept the terms of that agreement to use this software.
  9. //
  10. #ifndef unicode_INCLUDED
  11. #define unicode_INCLUDED
  12.  
  13. #include "config.h"
  14. #include <iostream.h>
  15. #ifndef __amigaos__
  16. #include <wchar.h>
  17. #endif
  18. #include <ctype.h>
  19. #include "bool.h"
  20. #include "code.h"
  21. #include "case.h"
  22.  
  23. class Unicode
  24. {
  25. public:
  26.     static inline void Cout(wchar_t ch)
  27.     {
  28. #ifdef EBCDIC
  29.         cout << (char) (ch > 0 && ch < 0x00C0 ? Code::ToEBCDIC(ch) : ' ');
  30. #else
  31.         cout << (char) (ch > 0 && ch < 0x00C0 ? ch : ' ');
  32. #endif
  33.     }
  34.  
  35.     static inline void Cout(wchar_t *str)
  36.     {
  37.         for (; *str; str++)
  38.             Cout(*str);
  39.     }
  40.  
  41.     static inline void Cerr(wchar_t ch)
  42.     {
  43. #ifdef EBCDIC
  44.         cerr << (char) (ch > 0 && ch < 0x00C0 ? Code::ToEBCDIC(ch) : ' ');
  45. #else
  46.         cerr << (char) (ch > 0 && ch < 0x00C0 ? ch : ' ');
  47. #endif
  48.     }
  49.  
  50.     static inline void Cerr(wchar_t *str)
  51.     {
  52.         for (; *str; str++)
  53.             Cerr(*str);
  54.     }
  55.     static inline void Cout(char ch)
  56.     {
  57. #ifdef EBCDIC
  58.         cout << (char) (ch > 0 && ch < 0x00C0 ? Code::ToEBCDIC(ch) : ' ');
  59. #else
  60.         cout << (char) (ch > 0 && ch < 0x00C0 ? ch : ' ');
  61. #endif
  62.     }
  63.  
  64.     static inline void Cout(char *str)
  65.     {
  66.         for (; *str; str++)
  67.             Cout(*str);
  68.     }
  69.  
  70.     static inline void Cerr(char ch)
  71.     {
  72. #ifdef EBCDIC
  73.         cerr << (char) (ch > 0 && ch < 0x00C0 ? Code::ToEBCDIC(ch) : ' ');
  74. #else
  75.         cerr << (char) (ch > 0 && ch < 0x00C0 ? ch : ' ');
  76. #endif
  77.     }
  78.  
  79.     static inline void Cerr(char *str)
  80.     {
  81.         for (; *str; str++)
  82.             Cerr(*str);
  83.     }
  84. };
  85.  
  86. #endif
  87.  
  88.